/*
  学习目标：兄弟组件通信-状态提升
  概念: 将需要共享的数据, 提升到共同的父组件中, 子组件都通过父子级通信交换数据
  步骤：
     0. cv组件三个
     1. 将Husband组件中的状态和方法, 提升到父组件中
     2. 通过子传父, 让Husband组件能够赚钱存在App中
     3. 通过子传父, 让Wife组件能够划掉App中的money
*/

import React, { Component } from 'react';
import Husband from './components/Husband';
import Wife from './components/Wife';

export default class App extends Component {
  // 1.1  从老公组件中将状态提升到APp组件中
  state = {
    money: 0,
  };

  // 1.2 将赚钱方法挪到App组件中
  handleMakeMoney = () => {
    this.setState({ money: this.state.money + 1000 });
  };

  // 3.1 父组件定义一个花钱的函数
  handleCostMoney = () => {
    this.setState({ money: this.state.money - 5000 });
  };

  render() {
    const { money } = this.state;
    return (
      <div>
        <h1 style={{ textAlign: 'center' }}>家庭存款：{money}</h1>
        <Husband
          // 2. 父传子给Husband组件handleMakeMoney money
          handleMakeMoney={this.handleMakeMoney}
          money={money}
        ></Husband>
        <hr />
        <Wife
          // 3.2 将花钱函数传给子组件
          handleCostMoney={this.handleCostMoney}
        ></Wife>
      </div>
    );
  }
}
